# 综合案例写入数据库
import json
from pymysql import Connection  #导包
one_sell_data=open("D:/me/study/python/execise/基础语法2/六、数据库/data/2011年1月销售数据.txt",'r',encoding="UTF-8")
two_sell_data=open("D:/me/study/python/execise/基础语法2/六、数据库/data/2011年2月销售数据JSON.txt",'r',encoding="UTF-8")

list_one = []   #存储规整的一月分数据
list_two = []   #存储规整的二月分数据
for x in one_sell_data.readlines():     # 对一月份数据进行规整并存放到列表中
    x = x.strip()
    x = x.split(',')
    dict_one = dict()
    dict_one["date"]=x[0]
    dict_one["order_id"] = x[1]
    dict_one["money"] = int(x[2])
    dict_one["province"] = x[3]
    list_one.append(dict_one)

for x in two_sell_data.readlines(): #对二月份数据进行规整并存放到列表中
    x = x.strip()
    x =json.loads(x)
    list_two.append(x)
one_sell_data.close()
two_sell_data.close()

def mysql_sell(list_data):
    conn = Connection(
        host='localhost',  # 主机名(或ip)
        port=3306,  # 端口
        user='root',  # 账户名
        password='123456',  # 密码
        autocommit=True  # 设置提交(和连接对象.commit()效果一样)
    )
    cursor = conn.cursor()  # 创建插入的游标对象
    cursor_id=conn.cursor() # 创建接收id的游标对象
    conn.select_db("test")  # 选择数据库

    cursor_id.execute("select * from sell;")  # 使用游标对象执行sql语句
    results = cursor_id.fetchall()  # 接收显示数据
    try:
        database_id = results[-1][0]
    except:
        database_id = 0

    # cursor.execute("create table sell(date date,order_id varchar(255),money int,province varchar(20))")		#使用游标对象执行创建表
    for x in list_data:
        database_id+=1
        sql = f"insert into sell values({database_id},'{x["date"]}','{x["order_id"]}',{x["money"]},'{x["province"]}')"
        print(sql)
        cursor.execute(sql)             # 使用游标对象执行sql插入语句
        # conn.commit()                 #提交更改
    conn.close()  # 关闭数据库连接
    cursor_id.close()
    cursor.close()

mysql_sell(list_one)
#mysql_sell(list_two)